// license-header java merge-point
/**
 * This is only generated once! It will never be overwritten.
 * You can (and have to!) safely modify it by hand.
 */
package edu.uoc.tfc.service;

import java.util.Collection;

import edu.uoc.tfc.dbmodel.TipusSiniestre;
import edu.uoc.tfc.dto.ResultatCercaTipusSinistreVO;
import edu.uoc.tfc.dto.TipusSinistreVO;
import edu.uoc.tfc.dto.security.UserVO;

/**
 * @see edu.uoc.tfc.service.TipusSinistreService
 */
public class TipusSinistreServiceImpl
    extends edu.uoc.tfc.service.TipusSinistreServiceBase
{

    /**
     * @see edu.uoc.tfc.service.TipusSinistreService#getTipusSinistre(java.lang.String)
     */
    protected  edu.uoc.tfc.dto.TipusSinistreVO handleGetTipusSinistre(java.lang.String tipusSinistreId)
        throws java.lang.Exception
    {
    	return (TipusSinistreVO) this.getTipusSiniestreDao().
    			load(this.getTipusSiniestreDao().TRANSFORM_TIPUSSINISTREVO, Long.valueOf(tipusSinistreId));
    }

    /**
     * @see edu.uoc.tfc.service.TipusSinistreService#cercaTipusSinistre(edu.uoc.tfc.dto.CriteriaTipusSinistreVO)
     */
    protected  edu.uoc.tfc.dto.ResultatCercaTipusSinistreVO handleCercaTipusSinistre(edu.uoc.tfc.dto.CriteriaTipusSinistreVO criteriaTipusSinistre)
        throws java.lang.Exception
    {
		@SuppressWarnings("unchecked")
        Collection<UserVO> tipus =
        		getTipusSiniestreDao().
        			findTipusSinistreByCriteria(
        					getTipusSiniestreDao().TRANSFORM_TIPUSSINISTREVO, criteriaTipusSinistre);
		
		ResultatCercaTipusSinistreVO resultat = new ResultatCercaTipusSinistreVO();
		
		resultat.setElements(tipus);
		resultat.setTotalRecords(tipus.size());		
		return resultat;       
	}

    /**
     * @see edu.uoc.tfc.service.TipusSinistreService#altaTipusSinistre(edu.uoc.tfc.dto.TipusSinistreVO)
     */
    protected  void handleAltaTipusSinistre(edu.uoc.tfc.dto.TipusSinistreVO tipusSinistre)
        throws java.lang.Exception
    {    	
    	this.getTipusSiniestreDao().create(
    			TipusSiniestre.Factory.newInstance(tipusSinistre.getNom(), true));
    }

    /**
     * @see edu.uoc.tfc.service.TipusSinistreService#modificaTipusSinistre(edu.uoc.tfc.dto.TipusSinistreVO)
     */
    protected  void handleModificaTipusSinistre(edu.uoc.tfc.dto.TipusSinistreVO tipusSinistre)
        throws java.lang.Exception
    {
    	tipusSinistre.setActiu(tipusSinistre.getActiu()==null?false:true);
    	this.getTipusSiniestreDao().update(
    			getTipusSiniestreDao().tipusSinistreVOToEntity(tipusSinistre));
    }

}